package com.caipin.domain.table;

/**
 * @Author: zhunian0322@163.com
 * @DateTime: 2021-10-06 11:32
 * @Description: TODO
 */
@TableName("t_course_statistical_rate")
public class CourseStatisticalRate {
    @TableId(type = IdType.AUTO)
    private Long id;

    private String grade;

    private String clbum;

    private String teacherId;

    private String teacherName;

    private String building;

    private String classroom;

    private String courseName;

    @TableField("course_student_count")
    private Integer studentCount;

    @TableField("course_current_id")
    private Long courseId;

    private String eventName;

    private Integer eventStudentCount;

    private Double percentage;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    public com.caipin.domain.table.CourseStatisticalRate setId(Long id) {
        this.id = id;
        return this;
    }

    public com.caipin.domain.table.CourseStatisticalRate setGrade(String grade) {
        this.grade = grade;
        return this;
    }

    public com.caipin.domain.table.CourseStatisticalRate setClbum(String clbum) {
        this.clbum = clbum;
        return this;
    }

    public com.caipin.domain.table.CourseStatisticalRate setTeacherId(String teacherId) {
        this.teacherId = teacherId;
        return this;
    }

    public com.caipin.domain.table.CourseStatisticalRate setTeacherName(String teacherName) {
        this.teacherName = teacherName;
        return this;
    }

    public com.caipin.domain.table.CourseStatisticalRate setBuilding(String building) {
        this.building = building;
        return this;
    }

    public com.caipin.domain.table.CourseStatisticalRate setClassroom(String classroom) {
        this.classroom = classroom;
        return this;
    }

    public com.caipin.domain.table.CourseStatisticalRate setCourseName(String courseName) {
        this.courseName = courseName;
        return this;
    }

    public com.caipin.domain.table.CourseStatisticalRate setStudentCount(Integer studentCount) {
        this.studentCount = studentCount;
        return this;
    }

    public com.caipin.domain.table.CourseStatisticalRate setCourseId(Long courseId) {
        this.courseId = courseId;
        return this;
    }

    public com.caipin.domain.table.CourseStatisticalRate setEventName(String eventName) {
        this.eventName = eventName;
        return this;
    }

    public com.caipin.domain.table.CourseStatisticalRate setEventStudentCount(Integer eventStudentCount) {
        this.eventStudentCount = eventStudentCount;
        return this;
    }

    public com.caipin.domain.table.CourseStatisticalRate setPercentage(Double percentage) {
        this.percentage = percentage;
        return this;
    }

    public com.caipin.domain.table.CourseStatisticalRate setCreateTime(Date createTime) {
        this.createTime = createTime;
        return this;
    }

    public boolean equals(Object o) {
        if (o == this)
            return true;
        if (!(o instanceof com.caipin.domain.table.CourseStatisticalRate))
            return false;
        com.caipin.domain.table.CourseStatisticalRate other = (com.caipin.domain.table.CourseStatisticalRate)o;
        if (!other.canEqual(this))
            return false;
        Object this$id = getId(), other$id = other.getId();
        if ((this$id == null) ? (other$id != null) : !this$id.equals(other$id))
            return false;
        Object this$grade = getGrade(), other$grade = other.getGrade();
        if ((this$grade == null) ? (other$grade != null) : !this$grade.equals(other$grade))
            return false;
        Object this$clbum = getClbum(), other$clbum = other.getClbum();
        if ((this$clbum == null) ? (other$clbum != null) : !this$clbum.equals(other$clbum))
            return false;
        Object this$teacherId = getTeacherId(), other$teacherId = other.getTeacherId();
        if ((this$teacherId == null) ? (other$teacherId != null) : !this$teacherId.equals(other$teacherId))
            return false;
        Object this$teacherName = getTeacherName(), other$teacherName = other.getTeacherName();
        if ((this$teacherName == null) ? (other$teacherName != null) : !this$teacherName.equals(other$teacherName))
            return false;
        Object this$building = getBuilding(), other$building = other.getBuilding();
        if ((this$building == null) ? (other$building != null) : !this$building.equals(other$building))
            return false;
        Object this$classroom = getClassroom(), other$classroom = other.getClassroom();
        if ((this$classroom == null) ? (other$classroom != null) : !this$classroom.equals(other$classroom))
            return false;
        Object this$courseName = getCourseName(), other$courseName = other.getCourseName();
        if ((this$courseName == null) ? (other$courseName != null) : !this$courseName.equals(other$courseName))
            return false;
        Object this$studentCount = getStudentCount(), other$studentCount = other.getStudentCount();
        if ((this$studentCount == null) ? (other$studentCount != null) : !this$studentCount.equals(other$studentCount))
            return false;
        Object this$courseId = getCourseId(), other$courseId = other.getCourseId();
        if ((this$courseId == null) ? (other$courseId != null) : !this$courseId.equals(other$courseId))
            return false;
        Object this$eventName = getEventName(), other$eventName = other.getEventName();
        if ((this$eventName == null) ? (other$eventName != null) : !this$eventName.equals(other$eventName))
            return false;
        Object this$eventStudentCount = getEventStudentCount(), other$eventStudentCount = other.getEventStudentCount();
        if ((this$eventStudentCount == null) ? (other$eventStudentCount != null) : !this$eventStudentCount.equals(other$eventStudentCount))
            return false;
        Object this$percentage = getPercentage(), other$percentage = other.getPercentage();
        if ((this$percentage == null) ? (other$percentage != null) : !this$percentage.equals(other$percentage))
            return false;
        Object this$createTime = getCreateTime(), other$createTime = other.getCreateTime();
        return !((this$createTime == null) ? (other$createTime != null) : !this$createTime.equals(other$createTime));
    }

    protected boolean canEqual(Object other) {
        return other instanceof com.caipin.domain.table.CourseStatisticalRate;
    }

    public int hashCode() {
        int PRIME = 59;
        result = 1;
        Object $id = getId();
        result = result * 59 + (($id == null) ? 43 : $id.hashCode());
        Object $grade = getGrade();
        result = result * 59 + (($grade == null) ? 43 : $grade.hashCode());
        Object $clbum = getClbum();
        result = result * 59 + (($clbum == null) ? 43 : $clbum.hashCode());
        Object $teacherId = getTeacherId();
        result = result * 59 + (($teacherId == null) ? 43 : $teacherId.hashCode());
        Object $teacherName = getTeacherName();
        result = result * 59 + (($teacherName == null) ? 43 : $teacherName.hashCode());
        Object $building = getBuilding();
        result = result * 59 + (($building == null) ? 43 : $building.hashCode());
        Object $classroom = getClassroom();
        result = result * 59 + (($classroom == null) ? 43 : $classroom.hashCode());
        Object $courseName = getCourseName();
        result = result * 59 + (($courseName == null) ? 43 : $courseName.hashCode());
        Object $studentCount = getStudentCount();
        result = result * 59 + (($studentCount == null) ? 43 : $studentCount.hashCode());
        Object $courseId = getCourseId();
        result = result * 59 + (($courseId == null) ? 43 : $courseId.hashCode());
        Object $eventName = getEventName();
        result = result * 59 + (($eventName == null) ? 43 : $eventName.hashCode());
        Object $eventStudentCount = getEventStudentCount();
        result = result * 59 + (($eventStudentCount == null) ? 43 : $eventStudentCount.hashCode());
        Object $percentage = getPercentage();
        result = result * 59 + (($percentage == null) ? 43 : $percentage.hashCode());
        Object $createTime = getCreateTime();
        return result * 59 + (($createTime == null) ? 43 : $createTime.hashCode());
    }

    public String toString() {
        return "CourseStatisticalRate(id=" + getId() + ", grade=" + getGrade() + ", clbum=" + getClbum() + ", teacherId=" + getTeacherId() + ", teacherName=" + getTeacherName() + ", building=" + getBuilding() + ", classroom=" + getClassroom() + ", courseName=" + getCourseName() + ", studentCount=" + getStudentCount() + ", courseId=" + getCourseId() + ", eventName=" + getEventName() + ", eventStudentCount=" + getEventStudentCount() + ", percentage=" + getPercentage() + ", createTime=" + getCreateTime() + ")";
    }

    public Long getId() {
        return this.id;
    }

    public String getGrade() {
        return this.grade;
    }

    public String getClbum() {
        return this.clbum;
    }

    public String getTeacherId() {
        return this.teacherId;
    }

    public String getTeacherName() {
        return this.teacherName;
    }

    public String getBuilding() {
        return this.building;
    }

    public String getClassroom() {
        return this.classroom;
    }

    public String getCourseName() {
        return this.courseName;
    }

    public Integer getStudentCount() {
        return this.studentCount;
    }

    public Long getCourseId() {
        return this.courseId;
    }

    public String getEventName() {
        return this.eventName;
    }

    public Integer getEventStudentCount() {
        return this.eventStudentCount;
    }

    public Double getPercentage() {
        return this.percentage;
    }

    public Date getCreateTime() {
        return this.createTime;
    }
}

